package s47.dqj.dao;

import java.util.List;

import javax.annotation.Resource;

import org.hibernate.SessionFactory;

import s47.dqj.bean.PatientReport;

public interface PatientReportDaoInf {

	@Resource(name = "sessionFactory")
	public abstract void setSupperSessionFactory(SessionFactory sessionFactory);

	/**
	 * 通过Prdate升序排列查找pid最近5次的看病记录
	 * @param patientReport
	 * @return
	 */
	public abstract List<PatientReport> findByPidAndPrdate(
			PatientReport patientReport);

	/**
	 * 查询指定医生指定患者的过往记录
	 * @param patientReport
	 * @param pageNum
	 * @return
	 */
	public abstract List<PatientReport> findByPidAndDpid(
			PatientReport patientReport, Integer pageNum);

	/**
	 * 获取页数(对查询指定医生指定患者的过往记录的PatientReport记录分页)
	 * @return
	 */
	public abstract List<Integer> selectPageTotalByPidAndDpid(
			PatientReport patientReport, Integer pageNum);

	/**
	 * 根据病状查找所有记录
	 * @param patientReport
	 * @return
	 */
	public abstract List<PatientReport> findByPrdiagnose(
			PatientReport patientReport, Integer pageNum);

	/**
	 * 获取页数(对查询根据病状查找所有记录的PatientReport记录分页)
	 * @return
	 */
	public abstract List<Integer> selectPageTotalByPrdiagnose(
			PatientReport patientReport, Integer pageNum);

	/**
	 * 查找想要的PatientReport记录
	 * @return
	 */
	public abstract List<PatientReport> findAllByCondition(String hql,
			Integer pageNum);

	/**
	 * 获取页数(对查找想要的DepartmentPositionCost记录分页)
	 * @return
	 */
	public abstract List<Integer> selectPageTotal(String tempHQL);

	/**
	 * 新增
	 * @param patientReport
	 */
	public abstract void save(PatientReport patientReport);

	/**
	 * 修改
	 * @param patientReport
	 */
	public abstract void update(PatientReport patientReport);

	/**
	 * 删除
	 * @param patientReport
	 */
	public abstract void delete(PatientReport patientReport);

	/**
	 * 查询单个
	 * @param patientReport
	 * @return
	 */
	public abstract PatientReport findObject(PatientReport patientReport);

}